$NG.AllReady(function (page, { useAction, useBeforeClick, useValuesChange, useClick, useUpdateRow, subscribe, useUpdateRows }) {
    const mstform = $NG.getCmpApi("p_form_lypj_m")
    const dgrid1 = $NG.getCmpApi("p_form_lypj_d1")
    const getHeadValue = (str) => mstform.getItem(str).getValue()


    if (page.oType == 'add') {
        getDetail()
        // 默认科技说明字段
        mstform.getItem("u_kmsm").setValue(`1、进度的计划值以经营部门的月产值计划为准。进度的完成值以监理签认的结算单为准。
2、本表一律以EXCEL表格形式填报。
3、有拖欠农民工工资而造成现场阻工、停工的，直接判定为当季度不合格分包。
4、给公司造成重大影响和损失的、以及发生其它的比较恶劣行为的直接判定为禁入分包商。经营部判定，直接结束，分数为0。`)
    }

    useValuesChange(() => {
        getCntCbInfoByPhid()
    }, "p_form_lypj_m.u_fbhtbh")


    useUpdateRows(({ args }) => {
        const rows = args[0]
        let total_amt = 0
        let u_pjjg = null
        rows.forEach(el => {
            if (el.u_pjxm != '合计得分') {
                if ((Number(el.u_mf) || 0) < (Number(el.u_df) || 0)) {
                    $NG.message("得分不能超出满分！")
                    el.u_df = el.u_mf
                }
                if ((Number(el.u_df) || 0) < 0) {
                    $NG.message("得分为正整数")
                    el.u_df = 0
                }
                total_amt += (Number(el.u_df) || 0)
            } else {
                el.u_df = total_amt
            }
        })
        if (total_amt < 60) {
            u_pjjg = '01';
        } else if (total_amt >= 60 && total_amt < 75) {
            u_pjjg = '02';
        } else if (total_amt >= 75 && total_amt < 90) {
            u_pjjg = '03';
        } else {
            u_pjjg = '04';
        }
        console.log(`当前`, u_pjjg, total_amt);
        mstform.getItem("u_pjjg").setValue(u_pjjg)
        dgrid1.refreshView()
    }, "p_form_lypj_d1")

    // 获取分包合同信息
    function getCntCbInfoByPhid() {
        const phid = getHeadValue("u_fbhtbh")
        if (!phid) {
            return
        }
        $NG.execServer("getCntCbInfoByPhid", { phid }, (res) => {
            if (res.count == 0) return
            const datas = JSON.parse(res.data)[0].extendObjects
            const arr = [
                {
                    key: "bill_name",
                    value: datas.cnt_name
                },
                {
                    key: "u_fbsmc",
                    value: {
                        value: datas.fbsdw_phid,
                        label: datas.fbsdw_name
                    }
                },

            ]
            getSupplyInfo(datas.fbsdw_phid)
            setHeadValue(arr)
        })
    }

    // 获取分包商单位
    function getSupplyInfo(phid) {

        if (!phid) return
        $NG.execServer("getSupplyInfo", { phid }, (res) => {
            if (res.count == 0) return
            const datas = JSON.parse(res.data)[0].extendObjects
            const arr = [
                {
                    key: "u_xcfzr",
                    value: datas.user_fbsxcfzr
                },
                {
                    key: "u_txdz",
                    value: datas.taxaddress
                },
                {
                    key: "u_xcfzrlxdh",
                    value: datas.user_fbsxcfzrlxdh
                },
                {
                    key: "u_zzdj",
                    value: datas.user_zzdj
                },
                {
                    key: "u_frdb",
                    value: datas.person
                },
                {
                    key: "u_frdblxfs",
                    value: datas.user_fddbrlxdh
                }
            ]
            setHeadValue(arr)
        })
    }

    // 获取基础表数据
    function getDetail() {
        $NG.execServer("SELECT", { sql: `select u_pjxm,u_mf,u_pjbz,u_df from p_form_lypjjcb_d1` }, (res) => {
            if (res.count == 0) return
            const datas = JSON.parse(res.data).reduce((value, item) => {
                value.push(item.extendObjects)
                return value
            }, [])
            dgrid1.clearRows().then(() => {
                dgrid1.addRows(datas)
            })
        })
    }

    // 赋值
    function setHeadValue(datas) {
        datas.forEach(item => {
            try {
                mstform.getItem(item.key).setValue(item.value)
            } catch (err) {
                console.log(`err`, err, item);
            }
        })
    }
})